home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
RMDOOR20.ARJ
/
RMDOOR.DOC
< prev
next >
Wrap
Text File
|
1992-01-19
|
19KB
|
1,057 lines
RMDoor
Version 2.0
Copyright (c) 1991-1992 By Mark Goodwin and Randy Hunt
RMDoor i
COPYRIGHT NOTICE
----------------
RMDoor is a copyrighted program being distributed under the
shareware concept. As such you may use RMDoor for a period of 30
days without registering the software. After the 30 day
evaluation period, you must register your copy of RMDoor or you
will be in violation of United States and International copyright
laws.
As a shareware program, RMDoor may be freely distributed through
a BBS. Shareware distributors may distribute copies of RMDoor on
disk for a modest disk duplication charge not to exceed $6 per
disk.
RMDoor ii
WARRANTY
--------
RMDoor is distributed without warranty. In no event will Mark
Goodwin or Randy Hunt be liable to you for damages, including any
loss of profits, lost savings, or other incidental or
consequential damages arising out of your use of or inability to
use the program, even if Mark Goodwin, Randy Hunt, or an
authorized representative has been advised of the possibility of
such damages. Mark Goodwin and Randy Hunt will not be liable for
any such claim by any other party.
RMDoor iii
TABLE OF CONTENTS
-----------------
INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . 1
USING RMDOOR . . . . . . . . . . . . . . . . . . . . . . . . 2
RUNNING AN RMDOOR DOOR . . . . . . . . . . . . . . . . . . . 3
SPECIAL KEYS . . . . . . . . . . . . . . . . . . . . . . . . 4
THE RMDOOR VARIABLES . . . . . . . . . . . . . . . . . . . . 5
ansicolor . . . . . . . . . . . . . . . . . . . . . . . 5
baudrate . . . . . . . . . . . . . . . . . . . . . . . . 5
bbsname . . . . . . . . . . . . . . . . . . . . . . . . 5
callingfrom . . . . . . . . . . . . . . . . . . . . . . 5
doorname . . . . . . . . . . . . . . . . . . . . . . . . 5
lockedrate . . . . . . . . . . . . . . . . . . . . . . . 5
minutesleft . . . . . . . . . . . . . . . . . . . . . . 5
phonenumber . . . . . . . . . . . . . . . . . . . . . . 6
seclevel . . . . . . . . . . . . . . . . . . . . . . . . 6
sysopname . . . . . . . . . . . . . . . . . . . . . . . 6
userfirstname . . . . . . . . . . . . . . . . . . . . . 6
username . . . . . . . . . . . . . . . . . . . . . . . . 6
THE RMDOOR PROCEDURES AND FUNCTIONS . . . . . . . . . . . . . 7
rmclrscr . . . . . . . . . . . . . . . . . . . . . . . . 7
rmdisplayfile . . . . . . . . . . . . . . . . . . . . . 7
rmgetbackground . . . . . . . . . . . . . . . . . . . . 7
rmgetforeground . . . . . . . . . . . . . . . . . . . . 7
rmgotoxy . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadi . . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadkey . . . . . . . . . . . . . . . . . . . . . . . 7
rmreadl . . . . . . . . . . . . . . . . . . . . . . . . 8
rmreads . . . . . . . . . . . . . . . . . . . . . . . . 8
rmsetcolor . . . . . . . . . . . . . . . . . . . . . . . 8
rmtimeleft . . . . . . . . . . . . . . . . . . . . . . . 9
rmtimeon . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwrite . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritei . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritel . . . . . . . . . . . . . . . . . . . . . . . . 9
rmwriteln . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelni . . . . . . . . . . . . . . . . . . . . . . . 9
rmwritelnl . . . . . . . . . . . . . . . . . . . . . . . 10
SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
REGISTRATION . . . . . . . . . . . . . . . . . . . . . . . . 12
RMDoor 1
INTRODUCTION
------------
RMDoor is a comprehensive set of Turbo Pascal routines designed
to enable programmers to easily write doors for BBSes. The
following are some of RMDoor's many features:
Assembly language serial input/output routines for
maximum speed.
Fully supports high speed modems: 16550 FIFO buffering
and locked serial ports.
Built in ANSI terminal emulator. No need to have
ANSI.SYS loaded in memory.
Supports all of the most popular door data file
formats: TriTel, PCBoard, GAP (DOOR.SYS), Spitfire,
WildCat!, and RBBS. Thus, a door built around RMDoor
is compatible with a wide range of BBS software.
RMDoor 2
USING RMDOOR
------------
Because RMDoor comes supplied is a Turbo Pascal unit it can be
seamlessly integrated with your door program by simply including
the following two lines in your door program:
{$M $4000,0,0}
uses rmdoor;
The first line is a {$M} compiler directive and is necessary to
enable RMDoor's Drop to DOS function. If you omit this line from
your door program, RMDoor will not be able to drop to DOS and
will display an appropriate error message to the sysop. NOTE:
The {$M} compiler directive also affects your program's heap
space. Be sure that the final two values are set accordingly if
you dynamically allocate memory.
The second line is a "uses" statement and simply instructs Turbo
Pascal to include the RMDOOR.TPU unit in your compiled door
program.
RMDoor 3
RUNNING AN RMDOOR DOOR
----------------------
An RMDoor-based door program is run by entering a command similar
to the following:
door config
In the above command line, "door" is the name of your door's EXE
file and the "config" parameter is the name of the door's
configuration file. The configuration file can have any name the
sysop chooses, but it must reside in the same directory as the
door. The configuration file is an ASCII text file with the
following format:
Line 1: Door data file type.
Line 2: Path to the door data file(s).
Line 3: BBS name.
Line 4: Sysop's name.
Line 5: Locked baud rate.
As illustrated above, the door's data file type is specified in
line 1 and can be PCB for PCBoard, GAP for GAP (DOOR.SYS), SF for
Spitfire, RBBS for RBBS, WC for WildCat! or TRITEL for TriTel.
The locked baud rate is specified in line 5. If the sysop
doesn't lock his serial port, he must specify 0 for the locked
baud rate. NOTE: Although many door formats do pass the locked
baud rate in the door data files, some older formats such as RBBS
do not. For conformity, RMDoor requires that you specify the
locked baud rate in line 5 and ignores any value passed in the
door data files.
The following is a sample door configuration file:
PCB
C:\tritel\
The Lobster Buoy
Mark Goodwin
38400
RMDoor can be run locally without a door data file (handy for the
sysop to use the door without logging on to the BBS) by
specifying LOCAL after the configuration file parameter in the
DOS command line. RMDoor will request the user to enter his name
before running the door.
RMDoor 4
SPECIAL KEYS
------------
While a door is running, the sysop can press certain special keys
to perform a variety of functions. The following is a list of
the functions that the RMDoor special keys perform:
Key(s) Function
HOME Toggles between the user status window and a
help display that lists the RMDoor special
keys.
F6 Takes 5 minutes away from the caller.
NOTE: This will NOT be returned to BBS.
F7 Gives 5 minutes to the caller.
NOTE: This will NOT be returned to the BBS.
F9 Quit the door and return the caller to the
BBS.
F10 Enter chat mode. Pressing the ESC key exits
the chat mode.
Alt+D Drop to DOS.
RMDoor 5
THE RMDOOR VARIABLES
--------------------
The following are the global variables that RMDoor supplies for
the door author's convenience:
ansicolor : boolean;
The ansicolor variable is set to True for a caller using ANSI
color graphics or to False for a monochrome caller.
baudrate : longint;
The baudrate variable holds the caller's baud rate. This is the
callers actual connection rate and not the locked baud rate.
NOTE: RMDoor will set baudrate to 0 for local calls.
bbsname : string;
The bbsname variable holds the BBS's name.
callingfrom : string;
The callingfrom variable holds the user's city and state. This
may not be supported by all door formats and will be set to a
null string if not.
doorname : string;
The doorname variable holds the door's name. The door's name
will be displayed in the user status window. NOTE: It is the
door author's responsibility to assign a value to this variable.
lockedrate : longint;
The lockedrate variable holds the serial port's locked baud rate,
if any.
minutesleft : integer;
The minutesleft variable holds the number of minutes the caller
had remaining when he entered the door.
RMDoor 6
phonenumber : string;
The phonenumber variable holds the user's phone number. This may
not be supported by all door formats and will be set to a null
string if not.
seclevel : integer;
The seclevel variable holds the caller's security level.
sysopname : string;
The sysopname variable holds the sysop's name.
userfirstname : string;
The userfirstname variable holds the user's first name.
username : string;
The username variable holds the user's name.
RMDoor 7
THE RMDOOR PROCEDURES AND FUNCTIONS
-----------------------------------
The following is a explanation of procedures and functions that
RMDoor provides:
procedure rmclrscr;
The rmclrscr procedure clears both the local and remote displays.
procedure rmdisplayfile(filename : string; pause : boolean);
The rmdisplayfile procedure displays a file to both the local and
the remote displays. The file to be displayed is specified by
"filename". The "pause" parameter specifies whether or not the
display is to be paused every 24 lines.
function rmgetbackground : integer;
The rmgetbackground function returns the current background
color.
function rmgetforeground : integer;
The rmgetforeground function returns the current foreground
color.
procedure rmgotoxy(x, y : integer);
The rmgotoxy procedure positions the cursor for both the local
and remote displays. The cursor's new column position is
specified by the "x" parameter and its new row position is
specified by the "y" parameter. NOTE: This will only work if the
user has ANSI enabled (RMDoor will ignore this statement if
called when the user does not have ANSI enabled).
function rmreadi : integer;
The rmreadi function returns the value of an integer that is
entered either locally or remotely.
function rmreadkey : char;
The rmreadkey function waits for either a key to be pressed or a
character to come in through the serial port. As soon as a
RMDoor 8
character is available, its value will be returned by rmreadkey.
function rmreadl : longint;
The rmreadl function returns the value of a longint that is
entered either locally or remotely.
function rmreads : string;
The rmreads function returns the value of a string that is
entered either locally or remotely.
procedure rmsetcolor(f, b : integer);
The rmsetcolor procedure sets the foreground color (the "f"
parameter) and the background color (the "b" parameter) for both
the local and remote displays. NOTE: The colors will only be set
if the caller has ANSI color graphics enabled. The foreground
colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Dark grey
9 - Light blue
10 - Light green
11 - Light cyan
12 - Light red
13 - Light magenta
14 - Yellow
15 - Bright white
The background colors are as follows:
0 - Black
1 - Blue
2 - Green
3 - Cyan
4 - Red
5 - Magenta
6 - Brown
7 - White
8 - Black with blinking foreground
9 - Blue with blinking foreground
RMDoor 9
10 - Green with blinking foreground
11 - Cyan with blinking foreground
12 - Red with blinking foreground
13 - Magenta with blinking foreground
14 - Yellow with blinking foreground
15 - White with blinking foreground
function rmtimeleft : integer;
The rmtimeleft function returns the number of minutes the caller
has remaining.
function rmtimeon : integer;
The rmtimeon function returns the number of minutes that the
caller has been in the door.
procedure rmwrite(s:string);
The rmwrite procedure displays a string both locally and
remotely.
procedure rmwritei(i : integer);
The rmwritei procedure displays an integer both locally and
remotely.
procedure rmwritel(l : longint);
The rmwritel procedure displays a longint both locally and
remotely.
procedure rmwriteln(s:string);
The rmwriteln procedure displays a string both locally and
remotely. After displaying the string, RMDoor will send a CR/LF
pair to the local and remote displays.
procedure rmwritelni(i : integer);
The rmwritelni procedure displays an integer both locally and
remotely. After displaying the integer, RMDoor will send a CR/LF
pair to the local and remote displays.
RMDoor 10
procedure rmwritelnl(l : longint);
The rmwritelnl procedure displays a longint both locally and
remotely. After displaying the longint, RMDoor will send a CR/LF
pair to the local and remote displays.
RMDoor 11
SUPPORT
-------
You may obtain assistance with a RMDoor related problem by
calling either James Bond's Hideaway at 207-942-6575 or The
Lobster Buoy at 207-941-0805.
RMDoor 12
REGISTRATION
------------
Registration of RMDoor is only $25.00. Please use the form in
the file REGISTER.TXT. When you register RMDoor, you will
receive a letter of verification and a note on how to turn your
shareware version of RMDoor into a registered version.